3 :PRINTCHR$(142):GX=49152:GOTO38 4 REM DRAW 3-D VIEW 5 N=2:A=H:B=V:FF=2^(F-1):SYS IN 6 Z=M%(A,B)*FF:IF((Z/16)AND1)=1THENRL=-1:GOSUB25:GOTO8 7 W=M%(A+S,B-R)*FF:IF((W/128)AND1)=1THENRL=-1:GOSUB21 8 IF((Z/64)AND1)=1THENRL=1:GOSUB25:GOTO10 9 W=M%(A-S,B+R)*FF:IF((W/128)AND1)=1THENRL=1:GOSUB21 10 IF((Z/128)AND1)=1THEN14 11 N=N+1:IFN>8THEN15 12 A=A+R:B=B+S:IFB<2 THEN15 13 GOTO6 14 GOSUB17 15 RETURN 16 REM**DRAW CENTER BACK 17 POKEHX,VX+DX(N):POKEHY,YU(N):SYS PL:POKEHY,YD(N):SYS LI 18 POKEHX,VX-DX(N):SYS LI:POKEHY,YU(N):SYS LI:POKEHX,VX+DX(N):SYS LI 19 RETURN 20 REM**DRAW BACK SIDE 21 POKEHX,VX+RL*DX(N-1):POKEHY,YU(N):SYS PL:POKEHX,VX+RL*DX(N):SYS LI 22 POKEHY,YD(N):SYS LI:POKEHX,VX+RL*DX(N-1):SYS LI 23 RETURN 24 REM**DRAW RIGHT OR LEFT SIDE 25 POKEHX,VX+RL*DX(N-1):POKEHY,YU(N-1):SYS PL:POKEHX,VX+RL*DX(N) 26 POKEHY,YU(N):SYS LI:POKEHY,YD(N):SYS LI:POKEHX,VX+RL*DX(N-1) 27 POKEHY,YD(N-1):SYS LI:POKEHY,YU(N-1):IFN>2 THEN SYS LI 28 RETURN 29 REM**GET KEYBOARD CHARACTER 30 GETA$:IFA$=""THEN30 31 RETURN 32 REM*ERROR SOUND 33 POKE59467,16:POKE59466,51:POKE59464,80 34 FORL=1TO50:NEXT 35 POKE59467,0:POKE59466,0:POKE59464,0 36 RETURN 37 REM**INITIALIZE 38 HX=828:HY=829:LINE=12288:PLOT=12665:INIT=12685:SCR=12725 39 FL=12726:FH=12730:TL=12734:TH=12738 40 PRINT"[147]RATS! 41 [153]"SOLVE A MAZE FROM A RAT'S EYE VIEW 42 INPUT"MAZE SIZE (H,V) 3,3[157][157][157][157][157]";H,V 43 IFH<3ORH>15 ORV<3ORV>15THEN40 44 PRINT"[147]PLEASE WAIT... 45 [139][194](LI)[178]32[175][194](LI[170]1)[178]33[175][194](LI[170]2)[178]48[167]48 46 CK[178]0:[129]L[178]12288[164]12761:[135]A:[151]L,A:CK[178]CK[170]A:[130]:[129]K[178]GX[164]GX[170]23:[135]GX 47 [151]K,GX:[130]:[139]CK[179][177]50144[167][153]"ERROR IN DATA STATEMENTS":[144] 48 N[178]H[172]V[171]1:H[178]H[170]1:V[178]V[170]1:D[178]1 49 [134]M%(17,17),WALK(100),CUT(5),DX(8),YU(8),YD(8) 50 [129]J[178]1[164]V[170]1:M%(1,J)[178]4:M%(H[170]1,J)[178]1:[130] 51 MX[178]79:MY[178]49:VX[178]39:VY[178]24:X[178]VX 52 [129]J[178]1[164]8:DX(J)[178]X:YU(J)[178][181](VY[171]X[172]VY[173]VX):YD(J)[178][181](VY[170]X[172](MY[171]VY)[173]VX) 53 X[178][181](X[172]7[173]10):[130] 54 [129]I[178]2[164]H:M%(I,V[170]1)[178]8:M%(I,1)[178]2:[129]J[178]2[164]V:M%(I,J)[178]15:[130]:[130] 55 R[178][181](H[173]2)[170]1:S[178][181](V[173]2)[170]1:M%(R,S)[178]15 56 [153]"LOADGENERATING MAZE...";:[141]2000 57 [143]**GENERATE RANDOM MAZE (ALGOGITHM FROM ROGERS AND STRASSBERGER) 58 [129]IWALK[178]1[164]N 59 I[178]Z 60 [139]M%(R[171]1,S)[177]14[167]I[178]I[170]1:CUT(I)[178]1 61 [139]M%(R,S[171]1)[177]14[167]I[178]I[170]1:CUT(I)[178]2 62 [139]M%(R[170]1,S)[177]14[167]I[178]I[170]1:CUT(I)[178]3 63 [139]M%(R,S[170]1)[177]14[167]I[178]I[170]1:CUT(I)[178]4 64 [139]I[178]0[167]75 65 [139]I[179][177]1[167]I[178][181]([187](I)[172]I)[170]1 66 [145] CUT(I)[137]67,69,71,73 67 M%(R,S)[178]M%(R,S)[171](M%(R,S)[175]1):R[178]R[171]1 68 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]4)[175]1)[172]4:[137]86 69 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]8)[175]1)[172]8:S[178]S[171]1 70 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]2)[175]1)[172]2:[137]86 71 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]4)[175]1)[172]4:R[178]R[170]1 72 M%(R,S)[178]M%(R,S)[171](M%(R,S)[175]1):[137]86 73 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]2)[175]1)[172]2:S[178]S[170]1 74 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]8)[175]1)[172]8:[137]86 75 [139]D[178][171]1[167]79 76 [139]R[179][177]H[167]83 77 [139]S[179][177]V[167]82 78 R[178]2:S[178]2:[137]84 79 [139]R[179][177]2[167]83 80 [139]S[179][177]V[167]82 81 R[178]H:S[178]2:[137]84 82 S[178]S[170]1:D[178][171]D:[137]84 83 R[178]R[170]D 84 [139]M%(R,S)[178]15 [167]75 85 [137]59 86 [130] IWALK 87 MH[178]H:MV[178]V:I[178][181]([187](1)[172](MH[171]1))[170]2 88 M%(I,1)[178]0:M%(I,2)[178]M%(I,2)[171]((M%(I,2)[173]8)[175]1)[172]8 89 H[178][181]([187](1)[172](MH[171]1))[170]2:H1[178]H:V1[178]V 90 [153]"LOADMAZE COMPLETED.":[141]2000:[137]105 91 [143]**DISPLAY TOP VIEW OF MAZE 92 HZ[178][181](79[173]MH):VZ[178][181](49[173]MV) 93 [158] IN:[151]214,24:[153][163]25);" ON "; 94 [151]HX,1[170]HZ:[151]HY,1[170]VZ:[158] PL:[151]HY,MV[172]VZ[170]1:[158] LI 95 [129]J[178]1[164]MV:[129]I[178]2[164]MH:N[178]M%(I,J):X[178]I[172]HZ[170]1:Y[178]J[172]VZ[170]1 96 [139] ((N[173]2)[175]1)[178]1[167][151]HX,X:[151]HY,Y:[158] PL:[151]HX,X[171]HZ:[158] LI 97 [139]((N[173]4)[175]1)[178]1[167][151]HX,X:[151]HY,Y:[158] PL:[151]HY,Y[171]VZ:[158]LI 98 [130]:[130] 99 [142] 100 [143]**MARK PLAYER(S POSITION 101 X[178]H[172]HZ[171]1:Y[178]V[172]VZ[171]1:[151]HX,X[170]1:[151]HY,Y[170]1:[158] PL 102 [151]HX,X[171]HZ[170]2:[151]HY,Y[171]VZ[170]2:[158] LI:[151]HY,Y[170]2:[158] PL 103 [151]HX,X[170]2:[151]HY,Y[171]VZ[170]2:[158] LI 104 [142] 105 [129]X[178]1[164]MH:[129]Y[178]1[164]MV:M%(X,Y)[178]M%(X,Y)[170]M%(X,Y)[172]16:[130]:[130] 106 [143]**PLAY 107 F[178][181]([187](1)[172]4)[170]1:[145]F[137]108,109,110,111 108 R[178]0:S[178][171]1:[137]112 109 R[178][170]1:S[178]0:[137]112 110 R[178]0:S[178][170]1:[137]112 111 R[178][171]1:S[178]0 112 [153]"LOADPRESS JWAIT TO TURN LEFT 113 PRINT"PRESS L[146] TO TURN RIGHT 114 [153]"PRESS SPACEWAIT TO GO FORWARD 115 PRINT"PRESS M[146] TO DISPLAY TOP VIEW OF MAZE 116 [153]" PRESS ANY KEY TO CONTINUE " 117 [141]30:[153]"LOAD";:[158]49152:[141]5 118 [143]**GET KEYSTROKE 119 [141]30 120 [145][171](A$[178]"J")[171]2[172](A$[178]"L")[171]3[172](A$[178]" ")[171]4[172](A$[178]"M")[137]122,124,131,136 121 [141]2000:[137]112 122 F[178]F[171]1:[139]F[179]1[167]F[178]4 123 [137]125 124 F[178]F[170]1:[139]F[177]4[167]F[178]1 125 [145]F[137]126,127,128,129 126 R[178]0:S[178][171]1:[137]130 127 R[178][170]1:S[178]0:[137]130 128 R[178]0:S[178][170]1:[137]130 129 R[178][171]1:S[178]0 130 [137]135 131 Z[178]M%(H,V):T[178]Z[172]2[174](F[171]1):T[178](T[173]128)[175]1:[139]T[178]1[167][141]2000:[137]119 132 NM[178]NM[170]1:[151]214,24:[153][163]25);"ONMOVE";NM;""; 133 [139] NM[179]100 [167]WALK(NM)[178]F 134 H[178]H[170]R:V[178]V[170]S:[139]V[179]2[167]147 135 [141]5:[137]119 136 [139][168]MS[167]138 137 [151]FL,218:[151]FH,49:[151]TL,0:[151]TH,128:[158] SC:[137]139 138 [141]92:[151]FL,0:[151]FH,128:[151]TL,218:[151]TH,49:[158] SC:MS[178][171]1 139 [141]101:[153]"YOU ARE FACING ";:[145]F[137]140,141,142,143 140 [153]"NORTH";:[137]144 141 [153]"EAST";:[137]144 142 [153]"SOUTH";:[137]144 143 [153]"WEST"; 144 [153]". PRESS ANY KEY TO":[153]"CONTINUE":[141]30 145 [153]" ":[153]" " 146 [141]5:[137]119 147 [141]2000:V[178]V1:H[178]H1:[139]MS[167][151]FL,218:[151]FH,49:[151]TL,0:[151]TH,128 148 [139]MS[167][158] SC:[137]150 149 [141]92 150 [141]101 151 [153]"CONGRATULATIONS-YOU'RE OUT IN";NM;"STEP!CMDSAVES" 152 [143]*DRAW PATH WALKED 153 [151]HX,H[172]HZ[171]HZ[173]2[170]1:[151]HY,V[172]VZ[171]VZ[173]2[170]1:[158] PL 154 [129]N[178]1[164]NM:[139]N[177]100[167]158 155 F[178]WALK(N):V[178]V[170](F[178]1)[171](F[178]3):H[178]H[170](F[178]4)[171](F[178]2) 156 [151]HX,H[172]HZ[171]HZ[173]2[170]1:[151]HY,V[172]VZ[171]VZ[173]2[170]1:[158]LI 157 [130] 158 [153]:[128] 160 [131] 32, 33, 48, 173, 58, 3, 133, 2 170 [131] 173, 59, 3, 133, 195, 32, 0, 49 180 [131] 173, 62, 3, 205, 63, 3, 16, 8 190 [131] 240, 6, 32, 173, 48, 76, 3, 48 200 [131] 96, 169, 128, 24, 109, 60, 3, 56 210 [131] 237, 58, 3, 141, 63, 3, 169, 128 220 [131] 24, 109, 61, 3, 56, 237, 59, 3 230 [131] 141, 64, 3, 162, 128, 142, 66, 3 240 [131] 142, 69, 3, 232, 142, 67, 3, 142 250 [131] 68, 3, 173, 63, 3, 201, 128, 176 260 [131] 11, 169, 127, 141, 68, 3, 169, 0 270 [131] 56, 237, 63, 3, 41, 127, 141, 63 280 [131] 3, 173, 64, 3, 201, 128, 176, 11 290 [131] 169, 127, 141, 67, 3, 169, 0, 56 300 [131] 237, 64, 3, 41, 127, 141, 64, 3 310 [131] 173, 63, 3, 205, 64, 3, 176, 32 320 [131] 174, 63, 3, 172, 64, 3, 142, 64 330 [131] 3, 140, 63, 3, 173, 68, 3, 141 340 [131] 66, 3, 173, 67, 3, 141, 69, 3 350 [131] 169, 128, 141, 67, 3, 141, 68, 3 360 [131] 173, 63, 3, 74, 141, 65, 3, 169 370 [131] 0, 141, 62, 3, 96, 173, 68, 3 380 [131] 56, 233, 128, 24, 109, 58, 3, 141 390 [131] 58, 3, 173, 69, 3, 56, 233, 128 400 [131] 24, 109, 59, 3, 141, 59, 3, 173 410 [131] 65, 3, 24, 109, 64, 3, 141, 65 420 [131] 3, 238, 62, 3, 173, 65, 3, 205 430 [131] 63, 3, 48, 35, 240, 33, 56, 237 440 [131] 63, 3, 141, 65, 3, 173, 66, 3 450 [131] 56, 233, 128, 24, 109, 58, 3, 141 460 [131] 58, 3, 173, 67, 3, 56, 233, 128 470 [131] 24, 109, 59, 3, 141, 59, 3, 96 480 [131] 169, 0, 133, 168, 169, 32, 133, 196 490 [131] 165, 2, 201, 80, 176, 56, 165, 195 500 [131] 201, 50, 176, 50, 234, 234, 234, 234 510 [131] 70, 2, 38, 168, 106, 38, 168, 133 520 [131] 195, 10, 10, 101, 195, 10, 10, 38 530 [131] 196, 10, 38, 196, 234, 234, 234, 133 540 [131] 195, 166, 168, 189, 99, 49, 133, 168 550 [131] 164, 2, 177, 195, 162, 15, 221, 103 560 [131] 49, 240, 4, 202, 16, 248, 96, 173 570 [131] 98, 49, 240, 6, 138, 5, 168, 170 580 [131] 208, 8, 138, 73, 255, 5, 168, 73 590 [131] 255, 170, 189, 103, 49, 164, 2, 145 600 [131] 195, 96, 1, 1, 2, 4, 8, 32 610 [131] 126, 123, 97, 124, 226, 255, 236, 108 620 [131] 127, 98, 252, 225, 251, 254, 160, 234 630 [131] 0, 173, 60, 3, 141, 58, 3, 133 640 [131] 2, 173, 61, 3, 141, 59, 3, 133 650 [131] 195, 32, 0, 49, 96, 162, 128, 160 660 [131] 0, 134, 254, 132, 253, 177, 253, 41 670 [131] 127, 201, 64, 48, 2, 169, 32, 145 680 [131] 253, 200, 208, 241, 232, 224, 132, 208 690 [131] 232, 169, 0, 170, 157, 58, 3, 232 700 [131] 224, 12, 208, 248, 96, 169, 218, 133 710 [131] 251, 169, 49, 133, 252, 169, 0, 133 720 [131] 253, 169, 128, 133, 254, 162, 4, 160 730 [131] 0, 177, 251, 145, 253, 136, 208, 249 740 [131] 230, 252, 230, 254, 202, 48, 2, 208 750 [131] 240, 96 1000 [131] 162, 0, 169, 1, 157, 0, 216, 157 1010 [131] 0, 217, 157, 0, 218, 157, 0, 219 1020 [131] 232, 208, 241, 96, 234, 234, 234, 0 2000 S0[178]54272:[129]E[178]S0[164]S0[170]28:[151]E,0:[130] 2010 [151]54296,15:[151]54277,51:[151]54278,211 2020 [151]54276,33:[151]54273,63:[151]54272,75 2030 [129]T[178]1[164]200:[130]:[151]54276,32:[129]T[178]1[164]100:[130] 2040 [129]E[178]S0[164]S0[170]28:[151]E,0:[130] 2050 [142]